﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.ObjectBuilder2;
using Castle.DynamicProxy;

namespace Simon.Unity.Proxy
{
   public delegate Castle.DynamicProxy.IInterceptor CreateInterceptorDelegate(NamedTypeBuildKey buildKey);

   internal interface IInterceptorCreationPolicy : IBuilderPolicy
   {
      IEnumerable<Castle.DynamicProxy.IInterceptor> CreateInterceptors(NamedTypeBuildKey buildKey);
      void RegisterInterceptor(CreateInterceptorDelegate interceptorCreator, int priorty);
   }   
}
